﻿/*------------------------------------------------------------------------

SYSSELEC.HPP v3.0.1

Copyright 楊志賢 CxxlMan, 2004 - 2011
All Rights Reserved

這個引入檔是為了統一平台的選擇，依不同平台來決定編譯的程式碼，只要引入
此檔，再依如下的方式使用即可

#if (SysSelect == _WIN32_CxxlMan)

    // 程式碼

#endif

同一套的程式拿到不同平台編譯時，只要先定義相符的符號識別字即可

不過前題是須為不同平台定義代表編號，再依不同平台定義的符號識別字，
把代表編號指定給 SysSelect 符號常數

------------------------------------------------------------------------*/

#if !defined(__SYSSELEC_HPP_CxxlMan)
#define __SYSSELEC_HPP_CxxlMan

// 平台的代表編號
#define _WIN32_CxxlMan 1   //  WIN32 平台
#define _LINUX_CxxlMan 2   //  linux 平台
#define _MAC_CxxlMan 3     //  MAC 平台


#if (defined(__WIN32__) || defined(_WIN32))
#define SysSelect _WIN32_CxxlMan
#define cxxlCDECL __cdecl
#define cxxlSTDCALL __stdcall
#define cxxlFASTCALL __fastcall
#endif

#ifdef __linux__
#define SysSelect _LINUX_CxxlMan
#define cxxlCDECL __attribute__((cdecl)) 
#define cxxlSTDCALL __attribute__((stdcall)) 
#define cxxlFASTCALL __attribute__((fastcall))
#endif

#if (defined(__macosx__) || defined(__MACOS__))
#define SysSelect _MAC_CxxlMan
#define cxxlCDECL 
#define cxxlSTDCALL 
#define cxxlFASTCALL
#endif


#ifndef SysSelect
#error Must define the identifier word of the operating system.
#endif

#endif /* #if !defined(__SYSSELEC_HPP_CxxlMan) */
